<?php

/**
 * Description of MySQL
 *
 * @author ROCU Fabien
 */

require_once('./classes/exceptions/SQLException.php');

class MySQL {
    private $link;

    // connexion à la base de données
    function __construct( $server, $login, $pass, $db )
    {

        // si aucune connexion n'est ouverte
        if ( !$this->link )
        {

            // on se connecte au serveur
            $this->link = @mysql_connect($server, $login, $pass);

            // si la connexion ne s'est pas ouverte
            if ( !$this->link )
            {
                throw new SQLException('Connextion au serveur impossible !');
            }

            //on essaie de sélectionner la base de données
            if ( !mysql_select_db($db, $this->link) )
            {
                throw new SQLException('Impossible de sélectionner la base de données !');
            }
        }

    }

    // fermeture de la connexion
    function close()
    {
        if ( $this->link )
        {
            mysql_close($this->link);
            unset($this->link);
        }
    }
    
    // exécution d'une requête
    function query($query)
    {
        if ( $this->link )
        {
            return mysql_query($query, $this->link);
        } 
        else
        {
            throw new SQLException('Aucune connexion ouverte');
        }
    }

    // nombre de résultats d'un requête
    function num_rows($result)
    {
        if ($result)
        {
            return mysql_num_rows($result);
        }
        /*
        else
        {
            throw new SQLException('Aucun résultat');
        }
        */
    }

    // parcours des résultats d'une requête
    function fetch_array($result)
    {
        if ($result)
        {
            return mysql_fetch_array($result);
        } 
        else
        {
            throw new SQLException('Aucune requête à parcourir');
        }
    }

    // retourne le dernier identifiant insert avec AUTO_INCREMENT
    function last_insert_id() {
        return mysql_insert_id($this->link);
    }

}

?>
